1 REM"[215]RITTEN BY [208].[194]ERGERON 04/15/92 " 2 REM" [211]UBTER.[206]TWK(203)5893273 " 3 REM" " 4 REM" [204]T.[203]ERNAL [211][217][211][199][197][206] [197]DITOR 1.01 " 5 REM" [205]ODIFIED ON 08/25/92 " 6 REM" " 10 POKE53280,0:POKE53281,0:PRINT"[147]" 20 DIMA(10),B(10),D(20,7),D$(20),DT(7,7),DS(4,7),DS$(4) 30 FORI=1TO4:READDS$(I):FORJ=0TO7:READDS(I,J):NEXT:NEXT 40 DV=8:X=0:SV=49152:DT=SV+14 50 OPEN15,DV,15:CLOSE15 60 IFST=0THENX=X+1:B(X)=DV 70 IFDV<15THENDV=DV+1:GOTO50 80 IFX=0THEN130 90 DV=X:X=0:FORI=1TODV 100 OPEN15,B(I),15:PRINT#15,"M-R"CHR$(198)CHR$(229)CHR$(1):GET#15,A$:A$=A$+CHR$(0) 110 IFASC(A$)=52ORASC(A$)=55THENX=X+1:A(X)=B(I):IFASC(A$)=55THENA(X)=A(X)+128 120 CLOSE15:NEXT:IFA(1)>0THEN140 130 PRINT"[150][206]O 1541/71 [196]RIVES [198]OUND![146]":STOP 140 IFA(2)=0THENI=1:GOTO210 150 PRINT"[147][152][[153] [196]RIVE [211]ELECTIONS [146][152]]" 160 FORI=1TOX:PRINT"[152][[158]"STR$(I)"[146][152]]- [155]15";:IFA(I)AND128THENPRINT"71";:GOTO180 170 PRINT"41"; 180 PRINT"[152]: [196]EVICE[155]";A(I)AND127:NEXT 190 PRINT"[152][196]RIVE TO [213]SE[146] [[154]1-";MID$(STR$(X),2);"[146][152]] [155]1[157][157][157][152]"; 200 INPUTA$:I=VAL(A$):IFI<1ORI>XTHEN150 210 DV=A(I)AND127:GOSUB1790:GOSUB1520 220 REMMAIN MENU 230 PRINT"[147] [152][[153] [205]AIN [205]ENU [146][152]]" 240 PRINT"[152][[158]1[146][152]]-[196]RIVE [212]ABLE [197]DITOR [146]" 250 PRINT"[152][[158]2[146][152]]-[129][195]HANGE [211]ERIAL [206]UMBER[146]" 260 PRINT"[152][[158]3[146][152]]-[156][204]OAD [196]RIVE [204]IST [146]" 270 PRINT"[152][[158]4[146][152]]-[159][204]OAD [211][217][211][199][197][206] [212]ABLE [146]" 280 PRINT"[152][[158]5[146][152]]-[211]AVE [211][217][211][199][197][206] [212]ABLE [146]" 290 PRINT"[152][[158]6[146][152]]-[129][196]ISPLAY [196]RIVE [212]ABLE [146]" 300 PRINT"[152][217]OUR [211]ELECTION[146] [[154]1-6[146][152],[150][209]=[209]UIT[146][152]]"; 310 A$="":INPUTA$:IFA$="Q"THEN400 320 A=VAL(A$):IFA<1ORA>6THEN230 330 ONAGOTO340,350,360,370,380,390 340 GOSUB440:GOTO230 350 GOSUB1300:GOTO230 360 GOSUB1390:GOTO230 370 GOSUB1790:GOSUB1520:GOTO230 380 GOSUB1790:GOSUB1600:GOTO230 390 GOSUB1660:GOTO230 400 PRINT"[152][[150][197]XIT [211][217][211][199][197][206] [197]DITOR[146][152]]" 410 GOSUB1850:IFA$="N"THEN230 420 END 430 REMEDIT DRIVES 440 FORI=0TO7:FORJ=0TO7:DT(I,J)=PEEK(DT+I*8+J):NEXT:NEXT 450 DI=0:FORI=0TO7:X=0:FORJ=1TO7:IFDT(I,J)<>0THENX=1 460 NEXT:IFX=1THENDI=DI+1 470 NEXT 480 PRINT"[147] [152][[153][196]RIVE [212]ABLE [197]DITOR[146][152]]" 490 PRINT"[152][[158]1[146][152]]-[129][193]DD A [196]RIVE [146]" 500 PRINT"[152][[158]2[146][152]]-[159][197]DIT [197]XISTING [196]RIVE[146]" 510 PRINT"[152][[158]3[146][152]]-[210]EMOVE A [196]RIVE [146]" 520 PRINT"[152][[196]RIVES [201]NSTALLED[146][152]]>[155]";DI 530 PRINT"[152][217]OUR [211]ELECTION[146] [[154]1-3[146][152],[150][209]=[209]UIT[146][152]] [155]Q[157][157][157][152]"; 540 A$="":INPUTA$:IFA$="Q"THEN580 550 A=VAL(A$):IFA<1ORA>3THEN480 560 ONAGOSUB620,700,770 570 GOTO480 580 PRINT"[152][[150][197]XIT [196]RIVE [212]ABLE [197]DITOR[146][152]]" 590 GOSUB1850:IFA$="N"THEN480 600 FORI=0TO7:FORJ=0TO7:POKE(DT+I*8+J),DT(I,J):NEXT:NEXT:RETURN 610 REMADD DRIVE 620 IFDI=7THENPRINT"[150][193]LL [196]RIVES [201]NSTALLED![146]":GOSUB1770:RETURN 630 PRINT"[147][154][196]RIVE[159]"DI"[154]IS THE NEXT AVAILABLE EMPTY" 640 PRINT"DRIVE SLOT. [200]IT 'Y' TO ADD A NEW HARD" 650 PRINT"DRIVE AT THIS LOCATION." 660 GOSUB1850:IFA$="N"THEN680 670 DE=DI:GOSUB850:IFXTHENDI=DI+1 680 RETURN 690 REMEDIT EXISTING 700 IFDI<1THENPRINT"[150][206]ONE [201]NSTALLED![146]":GOSUB1770:GOTO750 710 IFDI=1THENA=0:GOTO740 720 PRINT"[152][197]DIT [215]HICH [196]RIVE[146] [[154]0-"MID$(STR$(DI-1),2)"[146][152]]"; 730 A$="":INPUTA$:A=VAL(A$):IFA<0ORA>DI-1THEN750 740 DE=A:GOSUB850 750 RETURN 760 REMDELETE DRIVE 770 IFDI<1THENPRINT"[150][206]ONE [201]NSTALLED![146]":GOSUB1770:GOTO830 780 PRINT"[147][154][196]RIVE[159]"DI-1"[154]IS THE LAST DRIVE. [200]IT 'Y'" 790 PRINT"TO DELETE THE DRIVE IN THIS SLOT." 800 GOSUB1850:IFA$="N"THEN780 810 DI=DI-1:DT(DI,0)=128:FORI=1TO7:DT(DI,I)=0:NEXT 820 PRINT"[150][196]RIVE [196]ELETED![146]":GOSUB1770 830 RETURN 840 REMCHOOSE DRIVE 850 X=0 860 PRINT"[147] [152][[153][195]HOOSE A [200]ARD [196]RIVE[146][152]]" 870 PRINT"[152][[158]1[146][152]]-[198]ROM [196]EFAULTS [146]" 880 PRINT"[152][[158]2[146][152]]-[156][198]ROM [204]OADED [204]IST [146]" 890 PRINT"[152][[158]3[146][152]]-[159][205]ANUALLY [146]" 900 GOSUB1880:PRINT"[152][[197]DITING [196]RIVE[146][152]]>[155]";DE; 910 A$="[152]([153]"+A$+"[205]B[152])":IFA<1THENA$="[152]([150]NONE[152])" 920 PRINTA$:PRINT"[152][217]OUR [211]ELECTION[146] [[154]1-3[146][152],[150][209]=[209]UIT[146][152]] [155]Q[157][157][157][152]"; 930 A$="":INPUTA$:IFA$="Q"THENRETURN 940 A=VAL(A$):IFA<1ORA>3THEN860 950 ONAGOSUB980,1060,1150 960 GOTO860 970 REMSELECT STANDARD DRIVE 980 PRINT"[147][152][[153][211]ELECT [211]TANDARD [196]RIVE[146][152]]" 990 FORI=1TO4:PRINT"[152][[158]"MID$(STR$(I),2)"[146][152]]-[155]"DS$(I):NEXT 1000 PRINT"[152][217]OUR [211]ELECTION[146] [[154]1-4[146][152],[150][209]=[209]UIT[146][152]] [155]Q[157][157][157]"; 1010 A$="":INPUTA$:IFA$="Q"THEN1040 1020 A=VAL(A$):IFA<1ORA>4THEN980 1030 FORI=0TO7:DT(DE,I)=DS(A,I):NEXT:X=1:GOSUB1760 1040 RETURN 1050 REMSELECT LIST DRIVE 1060 PRINT"[147] [152][[153][196]RIVE [204]ISTINGS[146][152]]" 1070 IFDL<1THENPRINT"[150][206]ONE [204]OADED!":GOSUB1770:GOTO1130 1080 FORI=1TODL:PRINT"[152][[158]"RIGHT$(STR$(I),2)"[146][152]]-[155]"D$(I):NEXT 1090 PRINT"[152][217]OUR [211]ELECTION[146] [[154]1-"MID$(STR$(DL),2)"[146][152],[150][209]=[209]UIT[146][152]] [155]Q[157][157][157]"; 1100 A$="":INPUTA$:IFA$="Q"THEN1130 1110 A=VAL(A$):IFA<1ORA>DLTHEN1060 1120 FORI=0TO7:DT(DE,I)=D(A,I):NEXT:X=1:GOSUB1760 1130 RETURN 1140 REMSELECT MANUAL 1150 PRINT"[147] [152][[205]ANUAL [196]RIVE [211]ELECT[146][152]]" 1160 PRINT"[154][217]OU MUST ENTER THE 8-BYTE DRIVE" 1170 PRINT"SPECIFICATION MANUALLY. [217]OU WILL BE" 1180 PRINT"ASKED TO ENTER THE BYTES ONE AT A TIME." 1190 PRINT"[197]NTER 'QUIT' AT ANY TIME TO ABORT THIS" 1200 PRINT"PROCESS." 1210 FORI=0TO7:A$="[157][157][157][157][157][157]" 1220 PRINT"[152][194]YTE[155]"I"[152][[154]0-255[146][152]] [155]"DT(DE,I)"[152]"LEFT$(A$,LEN(STR$(DT(DE,I)))+2); 1230 A$="":INPUTA$:IFA$="QUIT"ORA$="Q"THENI=7:GOTO1260 1240 A=VAL(A$):IFA<0ORA>255THEN1220 1250 A(I)=A 1260 NEXT:IFA$="QUIT"THENPRINT:PRINT"[150][197]NTRY [193]BORTED![146]":GOSUB1770:GOTO1280 1270 FORI=0TO7:DT(DE,I)=A(I):NEXT:X=1:GOSUB1760 1280 RETURN 1290 REMSERIAL # CHANGE 1300 PRINT"[147][154] [217]OUR SERIAL NUMBER IS [159]"; 1310 FORI=0TO7:PRINTCHR$(PEEK(SV+I));:NEXT:PRINT 1320 PRINT"[152][201]S THAT CORRECT [[154][217]/[206][146][152]] [155]Y[157][157][157][152]"; 1330 A$="":INPUTA$:IFA$<>"Y"ANDA$<>"N"THEN1300 1340 IFA$="Y"THENRETURN 1350 PRINT"[152][201]NPUT [206]EW [211]ERIAL [206]UMBER[146] [[154]8 [196]IGITS[146][152]]" 1360 INPUTA$:IFLEN(A$)<>8THEN1350 1370 FORI=0TO7:POKE(SV+I),ASC(MID$(A$,I+1,1)):NEXT:GOTO1300 1380 REMREAD DRIVE DATA 1390 PRINT"[147][154][208]LEASE INSERT YOUR [196][210][201][214][197] [196][193][212][193] [196][201][211][203] IN":GOSUB1810 1400 A$="":INPUT"[152][206]AME OF [198]ILE TO [204]OAD [155][211]EAGATE [211][195][211][201][157][157][157][157][157][157][157][157][157][157][157][157][157][157][152]";A$ 1410 IFLEN(A$)<1ORLEN(A$)>16THEN1400 1420 IFLEFT$(A$,1)<>"-"THENA$="-"+A$:A$=LEFT$(A$,16) 1430 DL=0:PRINT"[152][[154][210]EADING [196]ATA[146][152]]";:OPEN2,DV,2,A$+",S,R" 1440 INPUT#2,A$:DL=VAL(A$) 1450 IFDL=0THENPRINT:PRINT"[150][206]OT A [214]ALID [196]ATA [198]ILE![146]":GOSUB1770:GOTO1390 1460 FORI=1TODL:FORJ=0TO7 1470 INPUT#2,A$:IFJ=0THEND$(I)=A$:PRINT".";:INPUT#2,A$ 1480 D(I,J)=VAL(A$) 1490 NEXT:NEXT 1500 CLOSE2:PRINT:GOSUB1800:RETURN 1510 REMREAD SYSGEN 1520 PRINT"[152][[154][210]EADING [196]RIVE [212]ABLE[146][152]]"; 1530 OPEN2,DV,2,"#":OPEN15,DV,15,"U1,2,0,18,18":INPUT#15,E,E$,T,S:IFETHEN1730 1540 FOR I=0 TO 255:PRINT".";:GET#2,A$:A$=A$+CHR$(0):POKESV+I,ASC(A$):NEXT 1550 INPUT#15,E,E$,T,S:IFETHEN1730 1560 CLOSE2:CLOSE15 1570 IFNOT(PEEK(SV+157)<>55ORPEEK(SV+158)<49ORPEEK(SV+158)>50)THENPRINT:RETURN 1580 E$="[150][206]OT A 7.1/7.2 [211][217][211][199][197][206] DISK![146]":GOTO1730 1590 REMWRITE SYSGEN 1600 PRINT"[152][[154][211]AVING [196]RIVE [212]ABLE[146][152]]"; 1610 OPEN2,DV,2,"#":OPEN15,DV,15:PRINT#15,"B-P 2 0" 1620 FORI=0TO255:PRINT".";:PRINT#2,CHR$(PEEK(SV+I));:NEXT 1630 PRINT#15,"U2,2,0,18,18":INPUT#15,E,E$,T,S:IFETHEN1740 1640 CLOSE15:CLOSE2:PRINT:RETURN 1650 REMDISPLAY DRIVES 1660 PRINT"[147] [152][[129][196]RIVE [212]ABLE[146][152]]" 1670 FORDE=0TO6:GOSUB1890 1680 PRINT" [152][[158]"MID$(STR$(DE),2)"[146][152]]-";:A$="[153]("+A$+"[205]B)" 1690 IFA<1THENA$="[150][206]OT [201]NSTALLED" 1700 PRINTA$:NEXT 1710 PRINT" [154][208]RESS [210][197][212][213][210][206][146] TO [195]ONTINUE":GOSUB1820:RETURN 1720 REMERRORS 1730 CLOSE15:CLOSE2:PRINT:PRINT"[152][197]RROR ON [211]OURCE [196]ISK!":PRINTE$:STOP 1740 CLOSE15:CLOSE2:PRINT:PRINT"[152][197]RROR ON [196]ESTINATION [196]ISK!":PRINTE$:STOP 1750 REMDONE PROMPT/DELAY 1760 PRINT"[150][195]HANGES [211]AVED![146]" 1770 FORI=1TO2000:NEXT:RETURN 1780 REMDISK PROMPT 1790 PRINT"[147]"; 1800 PRINT"[154][208]LEASE INSERT YOUR [211][217][211][199][197][206] [196][201][211][203] COPY IN" 1810 PRINT"DRIVE[159]"DV"[154]AND PRESS [210][197][212][213][210][206][146] TO CONTINUE." 1820 A$="":GETA$:IFA$<>CHR$(13)THEN1820 1830 RETURN 1840 REMY/N PROMPT 1850 INPUT"[152][193]RE [217]OU [211]URE[146] [[154][217]/[206][146][152]] [155]N[157][157][157][152]";A$:IFA$<>"Y"ANDA$<>"N"THEN1850 1860 RETURN 1870 REMCALC DRIVE SIZE(MB) 1880 A=DT(DE,2)*DT(DE,3)*(DT(DE,4)*256+DT(DE,5)):GOTO1900 1890 A=PEEK(DT+DE*8+2)*PEEK(DT+DE*8+3)*(PEEK(DT+DE*8+4)*256+PEEK(DT+DE*8+5)) 1900 A=INT(A/204.8)/10:A$=MID$(STR$(A),2) 1910 RETURN 1920 REMDEFAULT DATA 1930 DATA"[211]EAGATE [211][212]-225N(20[205]B)5.25[200]",128,0,17,4,2,100,0,0 1940 DATA"[205]INI[211]CRIBE 8425S(20[205]B)3.5[200]",192,0,17,4,2,100,0,0 1950 DATA"[208][195][211][212]225(20[205]B)",4,0,17,4,2,100,128,0 1960 DATA"[208][195]8650(40[205]B)",128,0,17,6,3,41,0,0 1970 REM 1980 REM"[208]LEASE SEND ANY CORRESPONDENCE 1990 [143]"SUCH AS DRIVE SPECS, SUGGESTED 2000 REM"IMPROVEMENTS, COMMENTS, OR 2010 [143]"REQUESTS TO THE AUTHOR: 2020 REM" [208].[194]ERGERON 2030 [143]" 10 RIGHT$ROQUOIS (null)D. 2040 REM" [194]RISTOL, [195][212] 06010 2050 [143]"(null)R USE THE PEEKPEEK(null) LINE ABOVE.